home *** CD-ROM | disk | FTP | other *** search
- @(#) XC README, patchlevel 4.3 JPRadley 11 September 1993
- This file (and almost every other one in the distribution) uses 4-character
- tabstops.
- The supplied .exrc file sets ts=4 and sw=4, for vi's purposes.
-
-
- B A C K G R O U N D
-
- Once upon a time (in 1985 or so), a fellow named Eric Coe wrote a Unix dialout
- telecommunications program with xmodem called XCOMM. This program was
- substantially upgraded and improved by another fellow named Larry Gensch, who
- brought XCOMM up to Version 2.2. Version 2.2 included a simple script
- language, 128-byte Xmodem and Compuserve Quick-B file-transfer protocols, and
- some other stuff. Fred Buck then changed the program name to XCMALT, which it
- maintained until June 1991, when Jean-Pierre Radley renamed it XC.
-
- XC is a massive expansion and modification of XCOMM 2.2. Many bugs in
- XCOMM 2.2 have been fixed, and many advertised features that didn't work in
- XCOMM 2.2 do work in XC. Also, XC includes a fullscreen dialing directory; a
- totally rewritten and much more powerful script language allowing, among other
- things, remote execution of shell commands and unattended protocol-controlled
- file transfer (provided that your system also has Chuck Forsberg's "rz/sz"
- Xmodem/Ymodem/Zmodem program, available as shareware from many sources), a
- flexible variable mechanism, including access to shell environment variables,
- and more; BREAK-signal capability; the capability to upload a file in ASCII
- from within a script; and miscellaneous cosmetic changes.
-
- But while XC incorporates much of Larry Gensch's work, it's not supported by
- Larry Gensch (although he contributed the key-binding features starting with
- XC3.2a). The changes from XCOMM 2.2 are the product of Steve Manes, who
- installed uucp LCKfile support and special compile-time tuning for SCO Xenix,
- and who wrote the fullscreen dialing directory; Fred Buck, who rewrote the
- script language, performed various bugfixes and alterations, and installed
- special compile-time tuning for the Tandy 6000; and Jean-Pierre Radley, who
- installed the B+ Protocol, used more termcap features, and is now the
- "caretaker" of XC.
-
-
- I N S T A L L A T I O N
-
- Run Configure. There are various definitions that have to be set according
- to your flavor of Unix, your preference for default directories, and other
- user-definable items.
-
- Typing just "make" will compile XC. On most systems, XC should be run "suid
- uucp", and in order to do this, you should have chosen "uucp" as the user
- to own the program, and 4755 as its permissions. If so, typing "make
- install.suid" will strip out its symbol table, place the program in INSDIR,
- and change its modes and permissions accordingly. If you did not elect
- this when running Configure, you can type "make install", but XC's permissions
- will probably not allow it to properly cope with dial-in/dial-out ports.
-
- The "xc.nro" file is 'nroff' source for a manual page which describes the
- command-line options, the various commands once you're running XC, script
- language, file transfers, and the price of milk in Soviet Georgia in 1986.
- This file MUST pass through 'tbl' and 'col', e.g.,
- "tbl xc.nro | nroff -man | col > /usr/man/cat.L/xc.L".
-
- Some distribution files that you might adapt to your own purposes:
-
- .exrc sets tabstops and shiftwidth to 4, which is necessary
- to properly view almost every file in the XC distribution.
- It also contains, commented out, macros
- to help read CompuServe message downloads, and to
- prepare replies.
-
- .xc sample startup script, demonstrates keyboard bindings
-
- .phonelist sample dialing directory data file
-
- .callhq sample script to call a Unix/Xenix system
-
- .uni sample script to call CompuServe and enter UnixForum
-
- .aus sample script to call CompuServe and enter, in turn,
- SCOForum and UnixForum, uploading any prepared messages,
- capturing all new messages into separate files, and
- hanging up.
-
- .autocis sample script to call CompuServe, get any waiting
- Mail into a capture file, then visit the PRACTICE
- and the Unix Fora in turn, uploading any prepared
- messages, capturing all new messages into separate
- files, then hanging up.
-
- .cisdial meant to be called as a sub-script for dialing
- CompuServe.
-
- .temp_opt meant to be called as a sub-script for temporary
- setting of Options in a CompuServe Forum to make
- efficient use of .autocis, .aus, or .uni.
-
- .pass a subscript containing passwords for various sites.
- This should have very restrictive permissions.
-
- .rz sample script to receive files using the public
- domain "rz/sz" package.
-
- .sz sample script to send files using the public domain
- "rz/sz" package.
-
- call a Bourne shell script to use a spare modem to dial
- voice calls for you.
-
- callback a Bourne shell script to call a site and have it
- return the call and present a 'login:' prompt.
-
- cisdownload a Bourne shell script to fetch a file from a Library
- in a CompuServe Forum.
-
-
- X C R E V I S I O N H I S T O R Y
-
- Version 4.4 Radley 1 Mar 1994
- Revise quoting used for getword (clue from Tom De Pauw)
- Fix extraneous ^Ms in capture files (clue from Terry Imler)
- Revised .exrc
- Include .slip.eg script
-
- Version 4.3 Radley 11 Sep 1993
- Redid all time routines
- Increased B+ internal buffers to use 2K packets
- Added Debug section to man page
-
- Version 4.2 Radley 30 Aug 1993
- Reverted to 7e|7o|8n
- Read the environment for LINES and COLUMNS (clue from Stockler)
- Took out half-duplex stuff
- Added chdir capability
- Test for return type of signal() in Configure
-
- Version 4.1 Gensch & Radley 10 Apr 1993
- Added Configure script
- Took out T6000 conditional
- Changed 7e|7o|8n to 7e2|7o2|8n1, with CSTOPB as needed
-
- Version 3.4 Radley 13 Feb 1993
- Took out bitmask and 7bit stuff, now have 7E, 7O, or 8N capability
- Sleep(1) after PREFIX to allow modem to react (clue from Doug Scothorne)
- Fixed newbmask signalling to prevent leak into B+ (clue from Jim Asman)
- Deleted for-loops in s_dial and s_term (clue Brian Ferguson)
- Tested for CO if no CN (clue Roy Johnson)
-
- Version 4.0 Radley 11 Jun 1992
- Used ANSI Prototype function declarations
- (this road will not be travelled further...)
-
- Version 3.3 Radley 25 May 1992
- Provided call (clue from John Esak) and cisdownload shell scripts
- Do not fork to terminal mode if stderr is not a tty
- Added mini-menu
- Merged Larry Gensch's 3.2a additions into xcscript.c
- Used Larry Gensch's NIL-pointer macro throughout
- Make a local copy of scriptname within S_Call()
- Renamed isig() to mode()
- Rearranged sections of the manual
- Restored newbmask (clue from Doug Scothorne)
- Set ptr = word early in k_waitfor (clue from Peter Smithem)
- B+ Packet_Size requests 2k if bps > 2400 (CIS may eventually do this)
- Use BS=c_cc[VERASE] == user's ERASE key (clue from Peter Gutmann)
- Used oldmode before printing help or dialdir (clue from Bill Greene)
- SYSVR4 mods for xcport.c (Larry Rosenman)
-
- Version 3.2a Larry Gensch 22 Sep 1991
- Made hard-coded terminal mode escape character a SETable value
- Added dynamic keyboard binding module
- Added bind_function, bind_script, and bind_function to script language
- Added fullword synonyms for command line keywords (eg, quit, term)
- Incorporated show_bindings() into help display
- Modified help display into more readable (to me, anyway) format
- Added show_bindings() as a terminal mode function (esc - ?)
- Fixed command line input routine
-
- Version 3.2 Radley 24 Aug 1991
- Set terminal's c_oflag to 0 (clue from Ronald Khoo)
- Openfile fix (Peter Smithem)
- Undefined toupper/tolower macros
- Removed toggle() and introduced capt_on() and capt_off()
- Changed diversion pacing back to using waitfor()
- Changed send_slowly to send_string; left out inter-character delay
- Removed newbmask
- Purge() before doing a %take (clue from Bob Stockler)
- Reinstalled xmodem crcheck as it was in 2.5 (clue from Volker Beyer)
- Rearranged some modules to make gcc happier
- Renamed intdel() to isig()
- Unscrambled the SUCCESS/FAILURE nonsense in xcscrpt.c
- Dropped trminp() in favor of fgetc()
- Reworked signal handling
-
- Version 3.1 Radley 14 Jul 1991
- Purge() before starting B+ (Al Bolduc)
- Eliminated purge as a set option.
- Send \r, not \n, after the Byeptr (Al Bolduc)
- When diverting from a script, pace by reading modem one line at a time
- Combined capture/captflag, and cf/cfp
-
- Version 3.0b Radley 08 Jul 1991
- Eliminated mklow/mkhigh in favor of tolower/toupper
- Shortened inter-line delay in script transmittal
-
- Version 3.0a Radley 29 Jun 1991
- Bugs re DIDO ports logic
- Spelling errors in xc.nro
- Added Buck-type CIS macros to .exrc
-
- Version 3.0 Radley 06 Jun 1991
- Program name XC replace XCMALT, by Jean-Pierre Radley
-
- Ditched nap() in favor of times()
- Cleaned up error handling in xcscrpt.c
- Used NULLS and NULLF where appropriate
- Used same crc table for xmodem and B+ (Mike Barton)
- Increased size of f[] in xcdial.c (Tom Cattrall)
- Introduced XC_PATH (Dan Everhart)
- Won't mistake a directory for a script (clue from Bob Stockler)
- Added "hangup" script keyword (Dan Everhart)
- Forced 8N1 setting on opening port (clue from John James & Russ Ranshaw)
- Cleaned up manual page
- Included 38400 speed
- Deleted ioctl(TCFLSH) from s_exit() (David Kindred)
- Fixed spurious return to dialing directory after B_Transfer (David Kindred)
- Fixed auto toggle after dialing without a script (clue from Roger Chaplin)
- Use carat-char for a ctrl-char in waitfor as well as in transmit
- Added MY_ESC-Q to quit XC from terminal mode (clue from Bill Hobson)
-
-
- X C M A L T R E V I S I O N H I S T O R Y
-
-
- Version 2.9 Radley 02 Sep 1990
- Fixed error messages and file opening in xcb+.c when permission denied.
-
- Version 2.8 Radley 01 Sep 1990
- Fixed interrupt handling when dialing from phonelist (clue from Jim Asman)
- Merged xcparse.c into xcscrpt.c
- Fixed backspace handling in getline()
- Used getline() inside man_dial()
- Did away with using /dev/tty
- For cron: do not bother with TERM if !isatty()
- Fixed page counting in dial directory routines (clue from Mike Squires)
- Changed Msg[80] to Msg[SM_BUFF] (clue from Dave Cardinal )
- Fixed a bad tgetstr() call (clue from Per Bilse)
-
- Version 2.7 Radley 12 June 1990
- Merge install.doc into xcmalt.h and README
- Change xcmalt.doc to nroff source
- Add cr_add flag to insert [or not] CRs after NLs in B+ uploads
-
- Version 2.6.1 Betz, Cattrall, Roberts, Scothorne, Radley 13 May 90
- Use separate rxbuf and kbbuf for port/keyboard input (Tom Cattrall)
- Stretched some sleep and nap delays (Doug Scothorne)
- Removed '/' from INSDIR definition in Makefile (Tom Betz)
- Fixed bug in while/do/call script/done logic (clue from Tom Roberts)
- Removed dd_done variable
- Fixed terminal(todir) logic
-
- Version 2.6 Radley 29 April 1990
- Reinstated SCO 2.2 ungetty calls
- Deleted crc setting, xmodem now always done with CRC
- Added auto flag, automatically start capture on entering terminal mode
- Used tputs() for screen control strings.
-
- Version 2.5 George Pontis & Jean-Pierre Radley 19 April 1990
- Use ioctl.h only for the T6000
- Fixed calls to nap() for BSD
- Fixed statbuf() declaration bug in xcport.c
- Included mklow()/mkhigh() as frontends to tolower()/toupper()
- Included NOSHELL option
- Exits mopen() if no port specified
-
- Version 2.4 Radley 31 Mar 1990
- Made all identifiers unique in first seven characters.
- Replaced incorrect references to "baud" and "baud-rate" by
- "bps" and "bits/second"
-
- Version 2.3 Radley 19 Feb 1990
- B-Plus replaces Quick-B
- Reinstated xclog code
- No mungmode variable; overwriting of a file interactively confirmed.
- No term variable; all transfers return to Terminal mode.
- Added timer.c, to calibrate the built-in nap() code.
-
- Version 2.2 Radley 05 Jan 1990
- Removed XCLUDE termio setting, which locked port on first fopen()
- Change setuid to be uid of 'uucp'
- Fixed set/get/uid routines
- Revised menu display
- Removed xclog code from xccisb.c
- Changed many TCSETAW ioctl calls to TCSETA
-
- Version 2.1 Radley 12 Dec 1989
- Revised all inverse video displays
- Took out more unnecessary routines
- Permitted operation from 'cron' or 'at'
- Fixed some of the interrupt routines
- Removed PUT_TAKE manifest, code for put/take now always included
- Fixed some of the mopen() routines.
- Did away with DRIBBLE, use nap() instead
-
- Version 2.0 Radley 9 Aug 1989
- Added openfile routine (credit to George Pontis)
- Added LIBDIR (credit to George Pontis)
- Used setbuf on local tty (credit to George Pontis)
- Eliminated fflush() calls
- Fixed put and take code
- Deleted SCO 2.2 ungetty stuff
-
- Version 1.0 ...all in or about, oh, say, 1988.
- CD-independent modem opening added by Fred Buck/J-P Radley
- Broken shell-escape mechanism fixed by Fred Buck
- Tandy 6000 LCKfile support added by Fred Buck
- Flexible LCKfile support added by Steve Manes
- Same, for SCO 2.2, added by J-P Radley
- Fullscreen dialing directory added by Steve Manes
- Fullscreen dialing directory tuned by Fred Buck/J-P Radley
- Shell-escape ignore-SIGINT bug fixed by Fred Buck
- Command-mode ignore-xon/xoff bug fixed by Fred Buck
- Script parsing greatly extended by Fred Buck
- "BYE" sequence to modem on exit added by Fred Buck
-
- Program named XCMALT instead of XCOMM, by Fred Buck
-
-
- X C O M M R E V I S I O N H I S T O R Y
-
-
- Version 2.2 larry gensch 14 Dec 87 Major code restructure
- Reduced program and command options
- Added SET command for setting various parameters
- Added HANGUP command for disconnecting modem
- Modified xccisb.c code to support CIS "Quick B" Protocol
- Added xcscrpt.c code for processing script files
- Added SCRIPT= parameter to phonebook processing (auto-logon scripts)
- Added CIS parameter for CIS <ENQ> auto transfers
- Added NL parameter for newline translation
- Added HANGUP command from terminal mode
- Added SCRIPT command from terminal mode
-
- Version 2.1b larry gensch 11 Nov 87 Bug Fix release
- (no bugs in the code, just some portability fixes)
- Changed "sigset" in xccisb to "signal"
- Removed #include <setjmp.h> from xcxmdm
-
- Version 2.1a larry gensch 28 Oct 87 General Update
- Added CIS "B" Protocol (c, ct commands)
- Added BAUD= & BITS= parameters to phonelist file.
- Switched some command letters
- Revised command line parsing to use getopt()
-
- Version 2.0 larry gensch 19 Oct 87 Revisions for System V.3
- Changed <sgtty> references to <termio> (modified ioctl(2) calls)
- Changed terminal mode function keys to <ESC> sequences; added getconchr()
-
- Version 1.1 Eric E Coe 21 Jul 85
- Autodial for Hayes-compatible modem.
- General rearranging of the code
-
- Version 1.0 Eric E Coe 12 Apr 85
- Program created
-
-
- ===================================
-
-
- Note: in the original XCOMM file "install.doc", Larry Gensch gave his
- various mail addresses for users to reach him about bug reports, upgrade
- requests, and the like. But Larry doesn't support (or in fact have anything
- to do with) XC/XCMALT, except as a contributor, and the fact that
- XCMALT is based on XCOMM 2.2, so there's no point in including this
- information here.
- Fred Buck, who made the major changes from XCOMM to XCMALT, passed away in
- early 1989.
- Jean-Pierre Radley has since been shepherding the program as it evolved from
- XCMALT to XC.
-
- Gripes, bugs, and comments accepted by:
- Jean-Pierre Radley
- jpr@jpr.com
- 72160.1341@compuserve.com
-